2 research outputs found

    Optimização e Geração de código OpenCL para computação embutida

    No full text
    Computação de alto desempenho é cada vez mais multi-núcleo. Como tal,computações sequenciais têm de ser substituidas pelo equivalente paralelo paraque o potencial do hardware seja atingido.Os programadores tipicamente desenvolvem e validam aplicações sequenciais emlinguagens de alto nível, como o MATLAB, que posteriormente traduzem paralinguagens paralelas de baixo nível, como o CUDA e o OpenCL.Este processo requer tempo e esforço e há o risco de introduzir erros, pelo queabordagens automáticas são altamente desejáveis, mesmo que estejam associadasa perdas significativas de desempenho comparativamente ao processo de traduçãomanual.Apresentamos uma ferramenta capaz de processar MATLAB e gerar o código OpenCLe C equivalente, baseada num projeto já existente chamado MATISSE que já écapaz de gerar código C sequencial a partir de código-fonte MATLAB.A geração de OpenCL não é totalmente automatizada visto que é baseada emdiretivas, que são manualmente inseridas pelo programador, para guiar acompilação.Trabalhos futuros podem reduzir este esforço, visto que algumas diretivas sãoredundantes e poderiam ser inferidas pelo compilador e outras poderiam serinjetadas automaticamente no código usando linguagens e ferramentas orientadasa aspetos.High-performance computing is increasingly multi-core. As such, sequencialcomputations must be replaced by their parallel counterparts for the hardwarepotential to be achieved.Programmers typically develop and validate sequential applications usinghigh-level languages such as MATLAB and later manually migrate to lower-levelparallel languages such as CUDA and OpenCL.This process is time consuming and error prone, so automatic source-to-sourceapproaches are highly desirable, even when there is a considerable slow-downcompared to the manual porting process.We present a tool capable of processing MATLAB and output the equivalent OpenCLand C wrapper code, based on an existing framework called MATISSE, which isalready capable of generating C code from MATLAB source code.OpenCL generation is not entirely automated since it relies on the manualinsertion of directives to guide the compilation.Future work could reduce this effort, since some directives are redundant andcould be inferred by the compiler and others could be automatically injected intothe code by Aspect-Oriented languages and tools
    corecore